%\iffalse meta-comment
%
% Copyright (C) 2016 by Yang Ximin <refmanager@163.com>
%
% This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3a
% of this license or (at your option) any later version.
% The latest version of this license is in:
%
% http://www.latex-project.org/lppl.txt
%
% and version 1.3a or later is part of all distributions of LaTeX
% version 2004/10/01 or later.
%
%\fi
%
%\iffalse
%<*driver>
\ProvidesFile{scunthesis.dtx}[2016/09/11 1.0 South-Central University for Nationalities Thesis Template]
\documentclass{ltxdoc}
\usepackage{setspace}
\usepackage{cn-fonts}
\usepackage{dtx-style}

\def\scunthesis{\textsc{SCUN}\-\textsc{Thesis}}

\EnableCrossrefs
\CodelineIndex
\RecordChanges

\begin{document}
    \wuhao\setstretch{1.0}
    \DocInput{\jobname.dtx}
\end{document}
%</driver>
%\fi
%
%\CheckSum{0}
%
%\CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \DoNotIndex{\newenvironment,\@bsphack,\@empty,\@esphack,\sfcode}
% \DoNotIndex{\addtocounter,\label,\let,\linewidth,\newcounter}
% \DoNotIndex{\noindent,\normalfont,\par,\parskip,\phantomsection}
% \DoNotIndex{\providecommand,\ProvidesPackage,\refstepcounter}
% \DoNotIndex{\RequirePackage,\setcounter,\setlength,\string,\strut}
% \DoNotIndex{\textbackslash,\texttt,\ttfamily,\usepackage}
% \DoNotIndex{\begin,\end,\begingroup,\endgroup,\par,\\}
% \DoNotIndex{\if,\ifx,\ifdim,\ifnum,\ifcase,\else,\or,\fi}
% \DoNotIndex{\let,\def,\xdef,\edef,\newcommand,\renewcommand}
% \DoNotIndex{\expandafter,\csname,\endcsname,\relax,\protect}
% \DoNotIndex{\Huge,\huge,\LARGE,\Large,\large,\normalsize}
% \DoNotIndex{\small,\footnotesize,\scriptsize,\tiny}
% \DoNotIndex{\normalfont,\bfseries,\slshape,\sffamily,\interlinepenalty}
% \DoNotIndex{\textbf,\textit,\textsf,\textsc}
% \DoNotIndex{\hfil,\par,\hskip,\vskip,\vspace,\quad}
% \DoNotIndex{\centering,\raggedright,\ref}
% \DoNotIndex{\c@secnumdepth,\@startsection,\@setfontsize}
% \DoNotIndex{\ ,\@plus,\@minus,\p@,\z@,\@m,\@M,\@ne,\m@ne}
% \DoNotIndex{\@@par,\DeclareOperation,\RequirePackage,\LoadClass}
% \DoNotIndex{\AtBeginDocument,\AtEndDocument}
%
% \GetFileInfo{\jobname.dtx}
%
% \changes{v1.0}{2016/07/25}{Please refer to ``Ruini Xue ThuThesis''.}
%
% \def\indexname{索引}
% \def\glossaryname{修改记录}
% \IndexPrologue{\section{\indexname}}
% \GlossaryPrologue{\section{\glossaryname}}
%
% \title{\bfseries\color{violet}\scunthesis：中南民族大学学位论文模板}
% \author{{\hei 杨喜敏}\\[5pt]\texttt{refmanager@163.com}}
% \date{v\fileversion\ (\filedate)}
% \maketitle\thispagestyle{empty}
%
% \begin{abstract}\noindent
%   此宏包旨在建立一个简单易用的中南民族大学学位论文模板，包括学士、硕士
%   和博士等学位论文。
% \end{abstract}
%
% \vskip2cm
% \def\abstractname{免责声明}
% \begin{abstract}
% \noindent
% \begin{enumerate}
% \item 本模板的发布遵守 \LaTeX\ Project Public License，使用前请认真阅读协议内容。
% \item 本模板为作者根据中南民族大学教务处和研究生院颁发的各种学位论文规范文件编写而成，旨在供中南民族大学毕业生撰写学位论文使用。
% \item 中南民族大学教务处和研究生院并不提供官方的学位论文\LaTeX\ 模板，也没有授
%   权第三方模板为官方模板，所以此模板仅为写作指南的参考实现，不保证格式审查老师
%   不提意见。任何由于使用本模板而引起的论文格式审查问题均与本模板作者无关。
% \item 任何个人或组织以本模板为基础进行修改、扩展而生成的新的专用模板，请严格遵守 \LaTeX\ Project Public License 协议。
%   由于违犯协议而引起的任何纠纷争端均与本模板作者无关。
% \end{enumerate}
% \end{abstract}
%
% \clearpage
% \pagestyle{fancy}
% \begin{multicols}{2}[
%   \setlength{\columnseprule}{.4pt}
%   \setlength{\columnsep}{18pt}]
%   \tableofcontents
% \end{multicols}
% \clearpage
%
% \section{实现细节}
%
% \subsection{基本信息}
%    \begin{macrocode}
%<cls>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<cls>\ProvidesClass{scunthesis}[2016/09/11 1.0 South-Central University for Nationalities Thesis Template]
%<cls>\LoadClass[a4paper,UTF8]{book}% 加载 \pkg{book} 类。
%    \end{macrocode}
%
% \subsection{装载宏包}
% \label{sec:loadpackages}
%    \begin{macrocode}
%<*cls>
\RequirePackage{cn-fonts}
\RequirePackage{ifxetex}
\RequirePackage{xparse}
\RequirePackage{etoolbox}
%    \end{macrocode}
%
% \AmSTeX\ 宏包，用来排出更加漂亮的公式。
%
%    \begin{macrocode}
\RequirePackage{amsmath} 
%    \end{macrocode}
%
% \pkg{newtx}设置Times New Roman，Helvetica
%    \begin{macrocode}
\RequirePackage[defaultsups]{newtxtext} 
\RequirePackage{newtxmath}
%    \end{macrocode}
%
% \pkg{newtx} 的 Mono 字体好看，但在论文中并不常见。而且，较新的实现 \TeX\ Gyre Cursor 会修
% 改\cs{bfdefault}，导致中文加粗出问题，所以选用标准 \pkg{courier}。
%    \begin{macrocode}
\RequirePackage{courier} 
%    \end{macrocode}
%
% 图形支持宏包。
%    \begin{macrocode}
\RequirePackage{graphicx}
%    \end{macrocode}
%
% 并排图形。\pkg{subfigure}、\pkg{subfig} 已经不再推荐，用新的 \pkg{subcaption}。
% 浮动图形和表格标题样式。\pkg{caption2} 已经不推荐使用，采用新的 \pkg{caption}。
%    \begin{macrocode}
\RequirePackage[labelformat=simple]{subcaption}
%    \end{macrocode}
%
% \pkg{pdfpages} 宏包便于我们插入扫描后的授权页和声明页 PDF 文档。
%    \begin{macrocode}
\RequirePackage{pdfpages}
\includepdfset{fitpaper=true}
%    \end{macrocode}
%
% 更好的列表环境。
%    \begin{macrocode}
\RequirePackage[shortlabels]{enumitem}
\RequirePackage{environ}
%    \end{macrocode}
%
% 禁止 \LaTeX 自动调整多余的页面底部空白，并保持脚注仍然在底部。
% 脚注按页编号。
%    \begin{macrocode}
%%%\ifscun@raggedbottom
\RequirePackage[bottom,perpage,hang]{footmisc}
\raggedbottom
%%%%\else
%%%%    \RequirePackage[perpage,hang]{footmisc}
%%%%\fi
%%%%%%
%%%%%\ifscun@pifootnote
\RequirePackage{pifont}
%%%%%\fi
%    \end{macrocode}
%
% 利用 \pkg{CJKfntef} 实现汉字的下划线和盒子内两段对齐，并可以避免
% \cs{makebox}\oarg{width}\oarg{s} 可能产生的 underful boxes。
%    \begin{macrocode}
%%%\RequirePackage{CJKfntef}
%    \end{macrocode}
%
% 定理类环境宏包，其中 \pkg{amsmath} 选项用来兼容 \AmSTeX\ 的宏包
%    \begin{macrocode}
\RequirePackage[amsmath,thmmarks,hyperref]{ntheorem}
%    \end{macrocode}
%
% 表格控制
%    \begin{macrocode}
\RequirePackage{array}
\RequirePackage{longtable}
%    \end{macrocode}
%
% 使用三线表：\cs{toprule}，\cs{midrule}，\cs{bottomrule}。
%    \begin{macrocode}
\RequirePackage{booktabs}
%    \end{macrocode}
%
% 参考文献引用宏包。
%    \begin{macrocode}
\RequirePackage[numbers,super,sort&compress]{natbib}
%    \end{macrocode}
%
% 删除默认模板（\file{book.cls}）在章之间引入的垂直间隔。要放在 \pkg{hyperref}
% 之前。
%    \begin{macrocode}
\patchcmd{\@chapter}{%
    \addtocontents{lof}{\protect\addvspace{10\p@}}%
}{}{}{} %lof
\patchcmd{\@chapter}{
    \addtocontents{lot}{\protect\addvspace{10\p@}}%
}{}{}{} %lot
%    \end{macrocode}
%
% 生成有书签的 pdf 及其开关，请结合 gbk2uni 避免书签乱码。
%    \begin{macrocode}
\RequirePackage{hyperref}
\ifxetex
\hypersetup{CJKbookmarks=true}
\else
\hypersetup{unicode=true,CJKbookmarks=false}
\fi
\hypersetup{%
    linktoc=all,
    bookmarksnumbered=true,
    bookmarksopen=true,
    bookmarksopenlevel=1,
    breaklinks=true,
    colorlinks=false,
    plainpages=false,
    pdfborder=0 0 0}
%    \end{macrocode}
%
% dvips 模式下网址断字有问题，请手工加载 \pkg{breakurl} 宏包解决之。
% 设置 url 样式，与上下文一致
%    \begin{macrocode}
\urlstyle{same}
%    \end{macrocode}
%
% 使用\pkg{geometry}和\pkg{fancyhdr}设置页面、页眉和页脚。
%    \begin{macrocode}
\RequirePackage{geometry}
\RequirePackage{fancyhdr}
%</cls>
%    \end{macrocode}
%
% \subsection{中文字体与字号}
% \label{sec:fonts}
% xetex/xelatex 字体设定宏包，支持多种字体和常规的中文字号
%
%    \begin{macrocode}
%<*cn-fonts>
\ProvidesPackage{cn-fonts}
\RequirePackage{xunicode,xltxtra}
%%[cm-default]选项主要用来解决使用数学环境时数学符号不能正常显示的问题。
\RequirePackage{fontspec}
\RequirePackage{xeCJK}
\defaultfontfeatures{Mapping=tex-text} %如果没有它，会有一些 tex 特殊字符无法正常使用，比如连字符。
%    \end{macrocode}
%
% 设置xeCJK宏包
%    CJKmath：支持在数学环境中直接输入CJK字符;
%    CheckSingle：避免单个CJK文字单独占一个段落的最后一行；
%    PlainEquation：支持使用$......$形式来输入行间数学公式，推荐使用[......]的形式来输入
%    \begin{macrocode}
\xeCJKsetup{CJKmath=true, CheckSingle=true, PlainEquation=true}
%    \end{macrocode}
%
% \subsubsection{字体}
%
% 定义中文字体名称。依据字体来源，定义Adobe、Windows和Mac多种字体名称。
%
% 1. Adobe 常用中文字体名称
%    \begin{macrocode}
\makeatletter

\def\fontname@adobeHei{Adobe Heiti Std}
\def\fontname@adobeSong{Adobe Song Std}
\def\fontname@adobeKai{Adobe Kaiti Std}
\def\fontname@adobeFangsong{Adobe Fangsong Std}
%    \end{macrocode}
%  2. Windows常用中文字体名称
%    \begin{macrocode}
\def\fontname@msHei{SimHei}
\def\fontname@msSong{SimSun}
\def\fontname@msKai{Kaiti}
\def\fontname@msXingkai{STXingkai}
%    \end{macrocode}
%  3. MAC常用中文字体
%    \begin{macrocode}
\def\fontname@macHei{STHeiti}
\def\fontname@macSong{STSong}
\def\fontname@macKai{STKaiti}
\def\fontname@macXingkai{STXingkai-SC-Light}
%    \end{macrocode}
%
% 论文常用字体为宋体和黑体，修改下面\cs{let}命令设置论文使用的字体。
%    \begin{macrocode}
\def\fontname@mono{Times New Roman}%等宽字体使用Times New Roman
\def\fontname@roman{Times New Roman}%等宽字体使用Times New Roman
\let\fontname@songti\fontname@macSong
\let\fontname@heiti\fontname@macHei
\let\fontname@kaiti\fontname@macKai
\let\fontname@xingkai\fontname@macXingkai
%    \end{macrocode}
%
% 字体快捷设置命令
%\begin{macro}{\song}
% 宋体
%\begin{macro}{\kai}
% 楷体
%\begin{macro}{\hei}
% 黑体
%\begin{macro}{\xingkai}
% 行楷
%    \begin{macrocode}
\setCJKfamilyfont{SONG}{\fontname@songti}
\newcommand{\song}{\CJKfamily{SONG}}
\setCJKfamilyfont{KAI}{\fontname@kaiti}
\newcommand{\kai}{\CJKfamily{KAI}}
\setCJKfamilyfont{HEI}{\fontname@heiti}
\newcommand{\hei}{\CJKfamily{HEI}}
\setCJKfamilyfont{XINGKAI}{\fontname@xingkai}
\newcommand{\xingkai}{\CJKfamily{XINGKAI}}
%    \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%
%\begin{macro}{\setMathFont}
% 设置公式字体
%    \begin{macrocode}
\newcommand\setMathFont[1]{%
    \xeCJKsetup{CJKmath=true}
    \setCJKmathfont{#1}%
}
%    \end{macrocode}
%\end{macro}
%
% \subsubsection{中西文默认字体设置}
% 设置文章中默认的中文和西文等宽字体，衬线字体和无衬线字体。采用中文断行。
%    \begin{macrocode}
% 中文字体
\setCJKmainfont[BoldFont=\fontname@songti, ItalicFont=\fontname@songti]{\fontname@songti}
% 中文无衬线族字体
\setCJKsansfont[BoldFont=\fontname@heiti, ItalicFont=\fontname@heiti]{\fontname@heiti}
% 中文等宽族字体
\setCJKmonofont[BoldFont=\fontname@songti, ItalicFont=\fontname@songti]{\fontname@songti}
%西文字体
\setmainfont[BoldFont=\fontname@roman, ItalicFont=\fontname@roman]{\fontname@roman}
%西文无衬线字体
\setsansfont[BoldFont={Arial}, ItalicFont={Arial}]{Arial}
%西文等宽字体
\setmonofont[BoldFont={Courier New}, ItalicFont={Courier New}]{Courier New}

%中文断行
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt
%    \end{macrocode}
%
% \subsubsection{字号}
% 常用中文字号定义：初号、小初号、一号、小一号、二号、小二号、三号、小三号、四号、
% 半小四号、小四号、大五号、五号、小五号、六号、七号、八号
%
%\begin{macro}{\chuhao}
%\begin{macro}{\xiaochu}
%\begin{macro}{\erhao}
%\begin{macro}{\xiaoer}
%\begin{macro}{\sanhao}
%\begin{macro}{\xiaosan}
%\begin{macro}{\sihao}
%\begin{macro}{\banxiaoshi}
%\begin{macro}{\xiaoshi}
%\begin{macro}{\dawu}
%\begin{macro}{\wuhao}
%\begin{macro}{\xiaowu}
%\begin{macro}{\liuhao}
%\begin{macro}{\qihao}
%\begin{macro}{\bahao}
%    \begin{macrocode}
\def\define@fontsize#1#2{%
    \expandafter\newcommand\csname #1\endcsname{%
        \fontsize{#2}{\baselineskip}\selectfont}}
\define@fontsize{chuhao}{42pt} %初号
\define@fontsize{xiaochu}{36pt} %小初
\define@fontsize{yihao}{26pt} %一号
\define@fontsize{xiaoyi}{24pt} %小一号
\define@fontsize{erhao}{22pt} %二号
\define@fontsize{xiaoer}{18pt} %小二号
\define@fontsize{sanhao}{16pt} %三号
\define@fontsize{xiaosan}{15pt} %小三号
\define@fontsize{sihao}{14pt} %四号
\define@fontsize{banxiaosi}{13pt} %半小四号，这个较少用到
\define@fontsize{xiaosi}{12pt} %小四号
\define@fontsize{dawu}{11pt} %大五号，这个较少用到
\define@fontsize{wuhao}{10.5pt} %五号
\define@fontsize{xiaowu}{9pt} %小五号
\define@fontsize{liuhao}{7.5pt} %六号
\define@fontsize{xiaoliu}{6.5pt} %小六号
\define@fontsize{qihao}{5.5pt} %七号
\define@fontsize{bahao}{5pt} %八号
%    \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%\end{macro}
%
%\begin{macro}{\normalsize}
% 正文小四号字，行距为固定值 20 bp。
%    \begin{macrocode}
\renewcommand\normalsize{%
    \@setfontsize\normalsize{12pt}{20bp}%
    \abovedisplayskip=20bp \@plus 2bp \@minus 2bp
    \abovedisplayshortskip=20bp \@plus 2bp \@minus 2bp
    \belowdisplayskip=\abovedisplayskip
    \belowdisplayshortskip=\abovedisplayshortskip}

%    \end{macrocode}
%\end{macro}
%
% \subsubsection{中文辅助元素}
% 英文数字符号转换为中文阿拉伯数字、中文小写数字、中文大写数字
%\begin{macro}{\cdigit}
% 中文阿拉伯数字：０１２３４５６７８９
%\begin{macro}{\cnumber}
% 中文小写数字：〇一二三四五六七八九十，廿卅卌（20，30，40）没有定义
%\begin{macro}{\cNumber}
% 中文大写数字：零壹贰叁肆伍陆柒捌玖拾，念（20）没有定义
%    \begin{macrocode}
\newcommand{\cdigit}[1]{%
    \ifcase#1{０}\or{１}\or{２}\or{３}\or{４}\or{５}\or{６}\or{７}\or{８}\or{９}\fi}
\newcommand{\cnumber}[1]{%
    \ifcase#1{〇}\or{一}\or{二}\or{三}\or{四}\or{五}\or{六}\or{七}\or{八}\or{九}\or{十}\fi}
\newcommand{\cNumber}[1]{%
    \ifcase#1{零}\or{壹}\or{贰}\or{叁}\or{肆}\or{伍}\or{陆}\or{柒}\or{捌}\or{玖}\or{拾}\fi}
%    \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
% 中文计数单位
%\begin{macro}{\ccunit}
% 小写计数单位
%\begin{macro}{\ccUnit}
% 大写计数单位
%    \begin{macrocode}
\newcommand{\ccunit}[1]{\ifcase#1 {个}\or{拾}\or{百}\or{千}\or{万}\or{亿}\fi}
\newcommand{\ccUnit}[1]{\ifcase#1 {个}\or{拾}\or{佰}\or{仟}\or{万}\or{亿}\fi}

\makeatother
%    \end{macrocode}
%\end{macro}
%\end{macro}
%    \begin{macrocode}
%</cn-fonts>
%    \end{macrocode}
%
% \subsection{模板选项和论文参数}
% \label{sec:options}
%    \begin{macrocode}
%<*cls>
\hyphenation{SCUN-Thesis}
\def\scunthesis{\textsc{SCUNThesis}}
\def\version{1.0}

\RequirePackage{kvoptions}
\RequirePackage{xifthen}
\makeatletter
%% kvoptions包设置
\SetupKeyvalOptions{
    family=scun,
    prefix=scun@,
    setkeys=\kvsetkeys
}
%    \end{macrocode}
%
% 使用\pkg{kvoptions}键值对（key=value）的方式来设置论文类型
%    \begin{macrocode}
\newboolean{scun@socialbachelor} %社会科学类学士学位论文
\newboolean{scun@naturalbachelor} %自然科学类学士学位论文
\newboolean{scun@master} %硕士学位论文
\newboolean{scun@specializedmaster} %专业硕士学位论文
\newboolean{scun@equivalentmaster} %同等学历人员硕士学位论文
\newboolean{scun@doctor} %博士学位论文
\define@key{scun}{type}{%
    \setboolean{scun@socialbachelor}{false}
    \setboolean{scun@naturalbachelor}{false}
    \setboolean{scun@master}{false}
    \setboolean{scun@specializedmaster}{false}
    \setboolean{scun@equivalentmaster}{false}
    \setboolean{scun@doctor}{false}
    \expandafter\setboolean{scun@#1}{true}}
\def\scun@deprecated@type@option{%
    \kvsetkeys{scun}{type=\CurrentOption} % for compatability.
    \ClassError{scunthesis}{Option '\CurrentOption' is deprecated, \MessageBreak
        please use 'type=\CurrentOption' instead}{}}
\DeclareVoidOption{socialbachelor}{\scun@deprecated@type@option}
\DeclareVoidOption{naturalbachelor}{\scun@deprecated@type@option}
\DeclareVoidOption{master}{\scun@deprecated@type@option}
\DeclareVoidOption{specializedmaster}{\scun@deprecated@type@option}
\DeclareVoidOption{equivalentmaster}{\scun@deprecated@type@option}
\DeclareVoidOption{doctor}{\scun@deprecated@type@option}
%    \end{macrocode}
%
% 是否是辅修学士学位论文
%    \begin{macrocode}
\DeclareBoolOption{minor}
%    \end{macrocode}
%
% 是否是涉密论文
%    \begin{macrocode}
\DeclareBoolOption{secret}
\def\secret{\scun@secret}
%    \end{macrocode}
%
% 将选项传递给父类[book]。
%    \begin{macrocode}
\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{book}}
%    \end{macrocode}
%
% 解析用户传递过来的选项。
%    \begin{macrocode}
\ProcessKeyvalOptions*
%    \end{macrocode}
%
% 使用 \XeTeX\ 引擎时，\pkg{fontspec} 宏包会被 \pkg{xeCJK} 自动调用。传递
% 给 \pkg{fontspec} 宏包 \option{no-math} 选项，避免部分数学符号字体自动调整
% 为 CMR。其他引擎下没有这个问题，这一行会被无视。
%    \begin{macrocode}
\PassOptionsToPackage{no-math}{fontspec}
%    \end{macrocode}
%
% 用户至少要提供一个选项，指定论文类型。
%    \begin{macrocode}
\ifthenelse{\boolean{scun@socialbachelor} \or \boolean{scun@naturalbachelor} \or
    \boolean{scun@master} \or \boolean{scun@specializedmaster} \or \boolean{scun@equivalentmaster} \or
    \boolean{scun@doctor}} %then
{}%else
{
    \ClassError{scunthesis}%
    {%
        Please specify thesis type in option: \MessageBreak
        type=[socialbachelor | naturalbachelor | master | specializedmaster | equivalentmaster | doctor]}{}
}
%    \end{macrocode}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 定义论文的各种参数                                                                %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 论文参数快捷定义命令
%\begin{macro}{\scun@def@term}
% 单语种(中文或英文)参数定义命令
%\begin{macro}{\scun@def@ceterm}
% 双语种（中文和英文）参数定义命令
%    \begin{macrocode}
\newcommand\scun@def@term[1]{%
    \DeclareStringOption{#1}
    \expandafter\newcommand\csname #1\endcsname[1][]{%
        \ifthenelse{\isempty{##1}}%then
        {\csname scun@#1\endcsname}%else
        {\setkeys{scun}{#1 = ##1}}%
    }%
}

\newcommand\scun@def@ceterm[1]{%
    \DeclareStringOption{c#1}
    \DeclareStringOption{e#1}
    \expandafter\newcommand\csname c#1\endcsname[1][]{%
        \ifthenelse{\isempty{##1}}%then
        {\csname scun@c#1\endcsname}%else
        {\setkeys{scun}{c#1 = ##1}}%
    }%
    \expandafter\newcommand\csname e#1\endcsname[1][]{%
        \ifthenelse{\isempty{##1}}%then
        {\csname scun@e#1\endcsname}%else
        {\setkeys{scun}{e#1 = ##1}}%
    }%
    \expandafter\newcommand\csname #1\endcsname[2]{
        \csname c#1\endcsname[##1]
        \csname e#1\endcsname[##2]
    }%
}
%    \end{macrocode}
%\end{macro}
%\end{macro}
%
% 涉密论文保密时限
%    \begin{macrocode}
\scun@def@term{secretYears}
\secretYears{10}
%    \end{macrocode}
% 涉密论文保密级别
%    \begin{macrocode}
\scun@def@term{secretLevel}
\secretLevle{内部}
%    \end{macrocode}
% 中南民族大学的学校代码是10524
%    \begin{macrocode}
\scun@def@term{SchoolCode}
\SchoolCode{10524}
%    \end{macrocode}
% 分类号
%    \begin{macrocode}
\scun@def@term{ClassificationNumber}
%    \end{macrocode}
% 学号
%    \begin{macrocode}
\scun@def@term{stuID}
%    \end{macrocode}
% 论文题目（中英文）
%    \begin{macrocode}
\scun@def@ceterm{Title}
%    \end{macrocode}
% 论文副标题（中英文）
%    \begin{macrocode}
\scun@def@ceterm{SubTitle}
%    \end{macrocode}
% 申请人姓名（中英文）
%    \begin{macrocode}
\scun@def@ceterm{Author}
%    \end{macrocode}
% 学校名称（中英文）
%    \begin{macrocode}
\scun@def@ceterm{University}
%    \end{macrocode}
% 培养单位（中英文）
%    \begin{macrocode}
\scun@def@ceterm{Department}
%    \end{macrocode}
% 导师姓名（中英文）
%    \begin{macrocode}
\scun@def@ceterm{Supervisor}
%    \end{macrocode}
% 导师职称（中英文）
%    \begin{macrocode}
\scun@def@ceterm{SupervisorTitle}
%    \end{macrocode}
% 副导师姓名（中英文）
%    \begin{macrocode}
\scun@def@ceterm{AssoSupervisor}
%    \end{macrocode}
% 副导师职称（中英文）
%    \begin{macrocode}
\scun@def@ceterm{AssoSupervisorTitle}
%    \end{macrocode}
% 联合指导老师姓名（中英文）
%    \begin{macrocode}
\scun@def@ceterm{CoSupervisor}
%    \end{macrocode}
% 联合指导老师职称（中英文）
%    \begin{macrocode}
\scun@def@ceterm{CoSupervisorTitle}
%    \end{macrocode}
% 学科专业（中英文）
%    \begin{macrocode}
\scun@def@ceterm{Major}
%    \end{macrocode}
% 研究方向（中英文）
%    \begin{macrocode}
\scun@def@ceterm{Direction}
%    \end{macrocode}
% 论文提交日期
%    \begin{macrocode}
\scun@def@term{SubjectDate}
%    \end{macrocode}
% 论文答辩日期
%    \begin{macrocode}
\scun@def@term{DefenceDate}
%    \end{macrocode}
% 答辩委员会主席
%    \begin{macrocode}
\scun@def@term{Chairman}
%    \end{macrocode}
% 学士学位获取时间
%    \begin{macrocode}
\scun@def@term{bsDate}
%    \end{macrocode}
% 学士学位授予学校
%    \begin{macrocode}
\scun@def@term{bsUniversity}
%    \end{macrocode}
% 硕士学位获取时间
%    \begin{macrocode}
\scun@def@term{msDate}
%    \end{macrocode}
% 硕士学位授予学校
%    \begin{macrocode}
\scun@def@term{msUniversity}
%    \end{macrocode}
% 学科门类（英文）
%    \begin{macrocode}
\scun@def@term{Category}
%    \end{macrocode}
% 一级学科或二级学科名称（英文）
%    \begin{macrocode}
\scun@def@term{Discipline}
%    \end{macrocode}
% 原创性声明与版权使用授权书扫描件（PDF文件名称）
%    \begin{macrocode}
\scun@def@term{CopyRight}
%    \end{macrocode}
% 摘要（中英文）
%    \begin{macrocode}
\scun@def@ceterm{Abstract}
%    \end{macrocode}
% 关键字（中英文）
%    \begin{macrocode}
\scun@def@ceterm{Keywords}

\makeatother
%</cls>
%    \end{macrocode}
%
%\subsection{页面设置}
%\label{sec:layout}
%\subsubsection{页面格式}
% 设置的学士学位论文和研究生学位论文的页面格式，但还是会与学校给的 WORD 样例有些差距。
%    \begin{macrocode}
%<*cls>
\geometry{%纸张大小
    a4paper, % 210 * 297mm
    hcentering,
    ignoreall,
    nomarginpar}
\ifthenelse{\boolean{scun@socialbachelor} \or \boolean{scun@naturalbachelor}}{%
    \geometry{%学士学位论文页面设置
        left=3.17cm, right=3.17cm, top=2.54cm, headheight=0.5cm, headsep=0.5cm, 
        textheight=246.2mm,  bottom=2.54cm, footskip=0.5cm}%
}{%
    \geometry{%研究生学位论文页面设置
        left=3cm,right=3cm, top=3cm, headheight=5mm, headsep=5mm, 
        textheight=237mm, bottom=3cm, footskip=0.5cm}}
%    \end{macrocode}
%
%\subsubsection{页眉和页脚}
%\label{sec:headerandfooter}
% 定义三种页眉和页脚：empty、plain和headings。
%\begin{macro}{scun@empty}
% 页眉和页脚均没有，用于封面、扉页封底等。
%\begin{macro}{scun@plain}
% 仅在页脚居中显示页码，无页眉，用于学士学位论文。
%\begin{macro}{scun@headings}
% 奇数页页眉显示论文类型，偶数页页眉显示论文题目，页脚居中显示页码，用于研究生学位论文。
%    \begin{macrocode}
\fancypagestyle{scun@empty}{%
    \fancyhf{}
    \renewcommand{\headrulewidth}{0pt}
    \renewcommand{\footrulewidth}{0pt}}
\fancypagestyle{scun@plain}{%
    \fancyhead{}
    \fancyfoot[C]{\monofont\xiaowu\thepage}
    \renewcommand{\headrulewidth}{0pt}
    \renewcommand{\footrulewidth}{0pt}}
\fancypagestyle{scun@headings}{%
    \fancyhf{}
    \fancyhead[CE]{\wuhao\songti\university\ifthenelse{\boolean{scun@doctor}}{博士}{硕士}学位论文}
    \fancyhead[CO]{\wuhao\songti\cTitle}
    \fancyfoot{\wuhao\thepage}
    \renewcommand{\headrulewidth}{0.5pt}
    \renewcommand{\footrulewidth}{0pt}}
%    \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%
%\subsubsection{脚注}
%\label{sec:footnote}
% 脚注符合中文的习惯，使用带圈的数字。
%\begin{macro}{\scun@textcircled}
% 生成带圈的脚注数字，每页不多于9个。
%    \begin{macrocode}
\def\scun@textcircled#1{%
    \ifnum\value{#1} >9
    \ClassError{scunthesis}{Too many footnotes in this page.}{Keep footnote less than 10.}
    \fi
    \textcircled{\xiaoliu\arabic{#1}}%
}
%    \end{macrocode}
%\end{macro}
%
% 重新定义\cs{footnote}和\cs{mpfootnote}。
%    \begin{macrocode}
\renewcommand{\thefootnote}{\scun@textcircled{footnote}}
\renewcommand{\thempfootnote}{\scun@textcircled{mpfootnote}}
%    \end{macrocode}
%
% 定义脚注分割线，字号(宋体小五)，以及悬挂缩进(1.5 字符)。
%    \begin{macrocode}
\def\footnoterule{\vskip-3\p@\hrule\@width0.3\textwidth\@height0.4\p@\vskip2.6\p@}
\let\scun@footnotesize\footnotesize
\renewcommand\footnotesize{\scun@footnotesize\xiaowu[1.5]}
\footnotemargin1.5em\relax
%    \end{macrocode}
%
% \cs{\@makefnmark}默认是上标样式，而在页脚部分要求为正文大小。利用\cs{patchcmd}动态调整\cs{\@makefnmark}的定义。
%    \begin{macrocode}
\let\scun@makefnmark\@makefnmark
\def\scun@@makefnmark{\hbox{{\normalfont\@thefnmark}}}
\pretocmd{\@makefntext}{\let\@makefnmark\scun@@makefnmark}{}{}
\apptocmd{\@makefntext}{\let\@makefnmark\scun@makefnmark}{}{}
%    \end{macrocode}
%
%\subsubsection{Three matters}
%\label{sec:matters}
%\begin{macro}{\cleardoublepage}
% 对于 \textsl{openright} 选项，必须保证章首页右开，且如果前章末页无内容须清空其页眉页脚。
%    \begin{macrocode}
\let\scun@cleardoublepage\cleardoublepage
\newcommand{\scun@clearemptydoublepage}{%
    \clearpage{\pagestyle{scun@empty}\scun@cleardoublepage}}
\let\cleardoublepage\scun@clearemptydoublepage
%    \end{macrocode}
%\end{macro}
%
% \begin{macro}{\frontmatter}
% 封面和扉页
% \begin{macro}{\mainmatter}
% 正文
% \begin{macro}{\backmatter}
% 封底
%    \begin{macrocode}
\renewcommand\frontmatter{%
    \if@openright\cleardoublepage\else\clearpage\fi
    \@mainmatterfalse
    \pagenumbering{Roman}
    \pagestyle{scun@empty}}
\renewcommand\mainmatter{%
    \if@openright\cleardoublepage\else\clearpage\fi
    \@mainmattertrue
    \pagenumbering{arabic}
    \ifscun@bachelor\pagestyle{scun@plain}\else\pagestyle{scun@headings}\fi}
\renewcommand\backmatter{%
    \if@openright\cleardoublepage\else\clearpage\fi
    \@mainmattertrue}
%    \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%    \begin{macrocode}
%</cls>
%    \end{macrocode}
%
%\subsection{封面}
% \label{sec:cover}
%
%  研究生学位论文由封面、中文标题页、英文标题页、原创性声明和版权使用授权书组成。本科生毕业论文仅包含封面。
%    \begin{macrocode}
%<*cls>
%    \end{macrocode}
%\begin{macro}{\titlelabel}
% 生成给定宽度内分散对齐的文本命令。
%    \begin{macrocode}
\makeatletter
\def\takeTheRest#1\ofTheString\fi{\fi\@labeltext#1\wholeString}
\def\@labeltext#1#2\wholeString {%
    \if#2$%
    #1
    \else#1\hspace{\fill}\takeTheRest#2\ofTheString%
    \fi
}%
\newcommand{\titlelabel}[2][4em]{%
    \makebox[#1][s]{\@labeltext#2$\wholeString}%
}
%    \end{macrocode}
%\end{macro}
%
%\begin{macro}{\BoxToFill}
% 定义空白框
%\begin{macro}{\CharBox}
% 字符加方框
%    \begin{macrocode}
\newcommand{\BoxToFill}{\fbox{\phantom{\rule[6pt]{0.5em}{0.2em}}}}
\newcommand{\CharBox}[1]{%
    $\rlap{\BoxToFill}~#1$
}
%    \end{macrocode}
%\end{macro}
%\end{macro}
%
%\begin{macro}{\wordsep}
% 调整字符间距命令，用于论文标题的格式设置
%    \begin{macrocode}
\newcommand{\wordsep}[1]{%
    \let\oriCJKglue=\CJKglue
    \renewcommand{\CJKglue}{\hskip 1pt}
    {#1}%
    \let\CJKglue=\oriCJKglue
}
%    \end{macrocode}
%\end{macro}
%
% \begin{macro}{\makecover}
% 封面生成命令
%    \begin{macrocode}
\def\myThesisTitle{%
    \ifthenelse{\boolean{scun@doctor}}{博士}{%
    	\ifthenelse{\boolean{scun@specializedmaster}}{专业}{%
    		\ifthenelse{\boolean{scun@equivalentmaster}}{同等学历人员}{}}%
    	硕士}%
    学位论文}
\newcommand{\makecover}{%
    \begingroup
    %% 封面
    \newgeometry{left=2.7cm,right=2.7cm, top=3cm, bottom=3cm}
    \thispagestyle{empty}
    \setstretch{1.2}
    \song\sihao
    ~\\
    ~\\
    \setstretch{1.5}
    \hei\xiaosi\noindent
    \parbox{13cm}{
        ~\\
        \makebox[4em][s]{学校代号}\underline{\makebox[7em]{\SchoolCode}}\hskip 2.3 cm\makebox[4em][s]{学号}\underline{\makebox[7em]{\stuID}} \\
        \makebox[4em][s]{分类号}\underline{\makebox[7em]{\ClassificationNumber}}\hskip 2.3 cm\makebox[4em][s]{密级}\underline{\makebox[7em]{\ifthenelse{\boolean{scun@secret}}{\secretLevle}{}}}
    }%
    \parbox{2.8cm}{\includegraphics[height=2.88cm,width=2.8cm]{logo.pdf}}
    \begin{center}
    \vskip 1.7 cm
    \includegraphics[height=3.0cm,width=10.0cm]{name.pdf}
    \vskip 1.4 cm
    \hei\ifthenelse{\boolean{scun@equivalentmaster}}{\fontsize{32pt}{\baselineskip}\selectfont}{\chuhao}\wordsep{\myThesisTitle}
    \vskip 1.0 cm
    \begin{center}
        \setstretch{1.9}\hei\yihao\parbox{12em}{\centering\wordsep\cTitle}
    \end{center}
    \vskip 40 pt
    \begin{spacing}{1.3}
        \hei\xiaosi
        \makebox[7em][s]{学位申请人姓名}\underline{\makebox[7cm]{\song \cAuthor}} \\
        \makebox[7em][s]{培养单位}\underline{\makebox[7cm]{\song \cUniversity}} \\
        \makebox[7em][s]{导师姓名及职称}\underline{\makebox[7cm]{\song \cSupervisor~~\cSupervisorTitle}} \\
        \makebox[7em][s]{学科专业}\underline{\makebox[7cm]{\song \cMajor}} \\
        \makebox[7em][s]{研究方向}\underline{\makebox[7cm]{\song \cDirection}} \\
        \makebox[7em][s]{论文提交日期}\underline{\makebox[7cm]{\song \SubjectDate}}
    \end{spacing}
    \end{center}
    \restoregeometry
    \newpage

%% 中文扉页
\thispagestyle{empty}
\begin{flushleft}
    \setlength\parindent{1.5cm}
    \setstretch{1.5}\song\wuhao
    ~\\~\\~\\~\par
    \setstretch{1.2}\hei\xiaosi
    \makebox[4em][s]{学校代号}：\par
    \makebox[4em][s]{学号}：\par
    \makebox[4em][s]{密级}：\par
    \song\wuhao
    ~\\~\\~\par
    \setstretch{1.5}\song\xiaoer\textbf{中南民族大学\myThesisTitle}
    \setstretch{1.5}\song\wuhao
    ~\\~\\
    \setstretch{1.6}\hei\erhao\parbox{12em}{\wordsep{\cTitle}}
    \setstretch{1.5}\song\wuhao
    ~\\~\\~\\~\par
    \setstretch{1.3}\hei\xiaosi
    \underline{\makebox[7em][s]{学位申请人姓名}： \makebox[20em]{\song \cAuthor}} \\
    \underline{\makebox[7em][s]{导师姓名及职称}：\makebox[20em]{\song \cSuperVisor~~\cSupervisorTitle}} \\
    \underline{\makebox[7em][s]{培养单位}：\makebox[20em]{\song \cUniversity}} \\
    \underline{\makebox[7em][s]{专业名称}：\makebox[20em]{\song \cMajar}} \\
    \underline{\makebox[7em][s]{论文提交日期}：\makebox[20em]{\song \SubjectDate}} \\
    \underline{\makebox[7em][s]{论文答辩日期}：\makebox[20em]{\song \DefenceDate}} \\
    \underline{\makebox[7em][s]{答辩委员会主席}：\makebox[20em]{\song \Chairman}} 
\end{flushleft}
\newpage
%% 英文扉页
\thispagestyle{empty}
\begin{center}
    \setstretch{1.6}\sanhao
    ~\\
    ~\\
    \underline{\eTitle}\\
    {\setstretch{1.0}\wuhao ~\\}
    \setstretch{1.5}\sihao
    by \\
    \underline{\eAuthor} \\
    B.E.(\bsUniversity)\bsDate \\
    \ifthenelse{\boolean{scun@doctor}}{M.S.( \msUniversity ) \msDate\\}{}
    A \underline{\ifthenelse{\boolean{scun@doctor}}{dissertation}{thesis}} submitted in partial satisfaction of the \\
    Requirements for the degree of \\
    \underline{\ifthenelse{\boolean{scun@doctor}}{Doctor}{Master}} of \underline{\Category} \\
    in \\
    \underline{\Discipline} \\
    in the \\
    Graduate School \\
    of \\
    \eUniversity \\
    ~\\
    Supervisor \\
    \eSupervisorTitle~~\underline{\eSupervisor} \\
    \SubjectDate
\end{center}
\newpage
%% 学位论文原创性声明与版权使用授权书
\thispagestyle{empty}
\setstretch{1.4}\song\banxiaosi\setlength\parindent{2em}
\begin{center}
    \hei\xiaoer 中南民族大学\\学位论文原创性声明
\end{center} \par
本人郑重声明：所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外，本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体，均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。\par
~\par
作者签名：\hskip 7 em 日期：\makebox[10em][s]{~年月日}\par
\begin{center}
    \hei\xiaoer 学位论文版权使用授权书
\end{center}\par
本学位论文作者完全了解学校有关保留、使用学位论文的规定，同意学校保留并向国家有关部门或机构送交论文的复印件和电子版，允许论文被查阅和借阅。本人授权中南民族大学可以将本学位论文的全部或部分内容编入有关数据库进行检索，可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。\par
本学位论文属于\par
\setlength\parindent{9em}
1、保密~\BoxToFill，在\underline{\makebox[3em]{}}解密后适用本授权书。\par
2、不保密\CharBox{√} 。\par
（请在以上相应方框内打“√”）  \\
~\par
\setlength\parindent{2em}
作者签名：\hskip 7 em 日期：\makebox[10em][s]{~年月日}\par
导师签名：\hskip 7 em 日期：\makebox[10em][s]{~年月日}
\newpage
\endgroup        
}
\makeatother
%    \end{macrocode}
% \end{macro}
%    \begin{macrocode}
%</cls>
%    \end{macrocode}
%
%\subsection{目录}
% 最多 4 层，即: x.x.x.x，对应的命令和层序号分别是：
% \cs{chapter}(0), \cs{section}(1), \cs{subsection}(2), \cs{subsubsection}(3)。
%    \begin{macrocode}
%<*cls>
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{2}
%    \end{macrocode}
%
% 每章标题行前空 6 磅，后空 0 磅。如果使用目录项中英文要使用 Arial，那么就加上 \cs{sffamily}。
% 章节名中英文用 Arial 字体，页码仍用 Times。
% \begin{macro}{\tableofcontents}
% 目录生成命令。
%    \begin{macrocode}
\renewcommand\tableofcontents{%
	\thu@chapter*[]{\contentsname}
	\ifthenelse{\boolean{scun@naturalbachelor} \or \boolean{scun@socialbachelor}}{\xiaosi[1.8]}{\xiaosi[1.65]\fi\@starttoc{toc}}\normalsize}
%    \end{macrocode}
% 调整目录样式，允许指定目录字体。
%    \begin{macrocode}
\ifthu@arialtoc
\def\thu@toc@font{\sffamily}
\fi
\def\@pnumwidth{2em}
\def\@tocrmarg{\@pnumwidth}
\def\@dotsep{1}
\patchcmd{\@dottedtocline}{#4}{\csname thu@toc@font\endcsname #4}{}{}
\patchcmd{\@dottedtocline}{\hb@xt@\@pnumwidth}{\hbox}{}{}
\renewcommand*\l@chapter[2]{%
	\ifnum \c@tocdepth >\m@ne
	\addpenalty{-\@highpenalty}%
	\vskip 4bp \@plus\p@
	\setlength\@tempdima{4em}%
	\begingroup
	\parindent \z@ \rightskip \@pnumwidth
	\parfillskip -\@pnumwidth
	\leavevmode
	\advance\leftskip\@tempdima
	\hskip -\leftskip
	% numberline is called here, and it uses \@tempdima
	{\ifthu@bachelor\sffamily\else\csname thu@toc@font\endcsname\fi\heiti #1}
	\leaders\hbox{$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill
	\nobreak{\normalfont\normalcolor #2}\par
	\penalty\@highpenalty
	\endgroup
	\fi}
%    \end{macrocode}
%
%\section{摘要}
%\label{sec:abstract}
%
\renewcommand{\abstractname}{\Large{摘~要}} 
%
%\subsection{正文格式}
%
%\subsubsection{多级标题和多级列表}
% 章、节、编号列表、符号列表
% chapter, section, subsection, subsubsection
\renewcommand{\chaptername}{第\cdigit{\thechapter}章}
\titleformat{\chapter}[hang]{\center\hei\xiaoer}{\chaptername}{1em}{\vskip 20 pt}
\renewcommand{\sectionname}{\thesection.\thesubsection}
\titleformat{\section}{\noindent\hei\xiaosan}{\thesectionname}{1em}{\vskip 12 pt}  

%
%\subsubsection{段落}
%
%\subsection{附件}
%
%\subsubsection{图}
%
%\subsubsection{表}
%
%\subsubsection{算法}
%
%\subsubsection{公式}
%
%\subsubsection{定义}
%
%\section{参考文献}
%\label{sec:references}
%
% \section{辅助包}
% 辅助说明文档生成格式
%    \begin{macrocode}
%<*dtx-style>
\ProvidesPackage{dtx-style}
\RequirePackage{hypdoc}
\RequirePackage[UTF8,scheme=chinese]{ctex}
\RequirePackage{newpxtext}
\RequirePackage{newpxmath}
\RequirePackage[
top=2.5cm, bottom=2.5cm,
left=4cm, right=2cm,
headsep=3mm]{geometry}
\RequirePackage{array,longtable,booktabs}
\RequirePackage{listings}
\RequirePackage{fancyhdr}
\RequirePackage{xcolor}
\RequirePackage{enumitem}
\RequirePackage{etoolbox}
\RequirePackage{metalogo}

\colorlet{scun@macro}{blue!60!black}
\colorlet{scun@env}{blue!70!black}
\colorlet{scun@option}{purple}
\patchcmd{\PrintMacroName}{\MacroFont}{\MacroFont\bfseries\color{scun@macro}}{}{}
\patchcmd{\PrintDescribeMacro}{\MacroFont}{\MacroFont\bfseries\color{scun@macro}}{}{}
\patchcmd{\PrintDescribeEnv}{\MacroFont}{\MacroFont\bfseries\color{scun@env}}{}{}
\patchcmd{\PrintEnvName}{\MacroFont}{\MacroFont\bfseries\color{scun@env}}{}{}

\def\DescribeOption{%
    \leavevmode\@bsphack\begingroup\MakePrivateLetters%
    \Describe@Option}
\def\Describe@Option#1{%
    \endgroup
    \marginpar{\raggedleft\PrintDescribeOption{#1}}%
    \scun@special@index{option}{#1}\@esphack\ignorespaces}
\def\PrintDescribeOption#1{\strut \MacroFont\bfseries\sffamily\color{scun@option} #1\ }
\def\scun@special@index#1#2{\@bsphack
    \begingroup
    \HD@target
    \let\HDorg@encapchar\encapchar
    \edef\encapchar usage{%
        \HDorg@encapchar hdclindex{\the\c@HD@hypercount}{usage}%
    }%
    \index{#2\actualchar{\string\ttfamily\space#2}
        (#1)\encapchar usage}%
    \index{#1:\levelchar#2\actualchar{\string\ttfamily\space#2}\encapchar usage}%
    \endgroup
    \@esphack}

\lstdefinestyle{lstStyleBase}{%
    basicstyle=\small\ttfamily,
    aboveskip=\medskipamount,
    belowskip=\medskipamount,
    lineskip=0pt,
    boxpos=c,
    showlines=false,
    extendedchars=true,
    upquote=true,
    tabsize=2,
    showtabs=false,
    showspaces=false,
    showstringspaces=false,
    numbers=none,
    linewidth=\linewidth,
    xleftmargin=4pt,
    xrightmargin=0pt,
    resetmargins=false,
    breaklines=true,
    breakatwhitespace=false,
    breakindent=0pt,
    breakautoindent=true,
    columns=flexible,
    keepspaces=true,
    gobble=2,
    framesep=3pt,
    rulesep=1pt,
    framerule=1pt,
    backgroundcolor=\color{gray!5},
    stringstyle=\color{green!40!black!100},
    keywordstyle=\bfseries\color{blue!50!black},
    commentstyle=\slshape\color{black!60}}

\lstdefinestyle{lstStyleShell}{%
    style=lstStyleBase,
    frame=l,
    rulecolor=\color{purple},
    language=bash}

\lstdefinestyle{lstStyleLaTeX}{%
    style=lstStyleBase,
    frame=l,
    rulecolor=\color{violet},
    language=[LaTeX]TeX}

\lstnewenvironment{latex}{\lstset{style=lstStyleLaTeX}}{}
\lstnewenvironment{shell}{\lstset{style=lstStyleShell}}{}

\setlist{nosep}

\DeclareDocumentCommand{\option}{m}{\textsf{#1}}
\DeclareDocumentCommand{\env}{m}{\texttt{#1}}
\DeclareDocumentCommand{\pkg}{s m}{%
    \texttt{#2}\IfBooleanF#1{\scun@special@index{package}{#2}}}
\DeclareDocumentCommand{\file}{s m}{%
    \texttt{#2}\IfBooleanF#1{\scun@special@index{file}{#2}}}
\newcommand{\myentry}[1]{%
    \marginpar{\raggedleft\color{purple}\bfseries\strut #1}}
\newcommand{\note}[2][Note]{{%
    \color{magenta}{\bfseries #1}\emph{#2}}}

\def\scunthesis{\textsc{SCUN}\-\textsc{Thesis}}
%</dtx-style>
%    \end{macrocode}
%
%\Finale
%
\endinput
